1. Field of the Invention
This invention relates generally to non-volatile memory, and more particularly to providing read disturbance management in a non-volatile memory system using a block table stored in non-volatile memory.
2. Description of the Related Art
In general, non-volatile memory is memory that stores data when power is disconnected from the system. Phase-change memory (PCM) and flash memory are examples of non-volatile computer memory in use today. Flash memory is a non-volatile computer memory that can be electrically erased and reprogrammed. Because flash memory retains stored data even when power to the memory is turned off, flash memory is widely used in battery-driven portable devices. For example, flash memory often is utilized in digital audio players, digital cameras, mobile phones, and USB flash drives, which are used for general storage and transfer of data between computers.
FIG. 1 is an illustration showing a typical prior art non-volatile memory arrangement. As illustrated in FIG. 1, a non-volatile memory 100 generally comprises a plurality of memory blocks 102, which generally is the smallest portion of memory that can be erased. Each memory block 102 generally comprises a fixed plurality of pages 104, which is the smallest size element that can be written or read from the non-volatile memory 100.
As data is being read from the memory 100, a phenomenon known as “read disturbance” can occur to adjacent memory cells in the memory 100. Read disturbance is caused when a page 104 is read from the memory 100 numerous times and adjacent memory cells are affected by electron migration to the point that the data stored in the adjacent cells is changed. In the past, a page in a Single Level Cell (SLC) memory, which contains one bit of data in each memory cell, could be read about one hundred thousand times before read disturbance would begin to cause changes in data in adjacent memory cells. However, since a single location rarely received one million reads, read disturbance did not present a large problem. Thus, for Single Level Cell (SLC) memory, read disturbance generally did not need to be accounted for by memory designers.
More recently, demand for greater storage capacity has lead to the use of multilevel-cell (MLC) memory, which contains two or more bits of data per cell, thereby increasing the storage capacity of the device. However, MLC memory is much less reliable than SLC memory. One aspect of the reduced reliability of MLC memory is a lower tolerance for read disturbance. More specifically, MLC memory generally reduces the number of reads that can occur before read disturbance begins to affect adjacent memory cells by a factor of ten. Thus, when using MLC memory, a location can only be read about ten thousand times before read disturbance begins to cause data changes in adjacent memory cells. As a result, unlike SLC memory, read disturbance in MLC memory can easily occur during normal operation of the memory.
In view of the foregoing, there is a need for methods for providing read disturbance management in a non-volatile memory. The methods should prevent changes in adjacent memory cells due to read disturbance. In addition, the methods should not require excessive memory usage and be easily usable by non-volatile memory file system.